﻿/**
 * Created by xjchen on 2020-03-03.
 * */

#ifndef MIDDLEWARE_BASEOBJECT_H
#define MIDDLEWARE_BASEOBJECT_H

#include "Header.h"
#include "logger.h"
#include "stdint.h"
#include <string>

enum ObjectType {
    UNKNOWN,
    TASK_MODULE,
    DEVICE_READER,
    DEVICE_WRITER,
    CUDA_MODULE,
    FUNCTION
};

class PerformanceStats;

class BaseObject {
public:
    BaseObject();

    virtual ~BaseObject();

    std::string clsName;
    std::string instanceName;
    PerformanceStats *performanceStats;
    ObjectType _type = UNKNOWN;

    int coreID = -1;
    bool isStopped = false;
    bool isDisabled = false;
    void *data = nullptr;
};


#endif /** MIDDLEWARE_BASEOBJECT_H */
